/*
  进制转换
  题目描述
    请你编一程序实现两种不同进制之间的数据转换。
  输入格式
    输入数据共有三行，第一行是一个正整数，表示需要转换的数的进制 n (2 ≤ n ≤ 16)，
    第二行是一个 n 进制数，若 n > 10 则用大写字母 A～F 表示数码 10～15，
      并且该 n 进制数对应的十进制的值不超过 1000000000，
    第三行也是一个正整数，表示转换之后的数的进制 m (2 ≤ m ≤ 16)。
  输出格式
    输出仅一行，包含一个正整数，表示转换之后的 m 进制数。
  样例输入
    16
    FF
    2
  样例输出
    11111111
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;
    int m;
    string s;
    long long x = 0;

    cin >> n;
    cin >> s;
    cin >> m;

    /******************************************/
    /* 将字符串 s (n 进制数) 转换成 10 进制数   */
    /******************************************/
    char q;
    long long a1;
    int right;
    for (int i = s.size() - 1; i >= 0; i--) {
        if (s[i] >= 'A' && s[i] <= 'F') {
            q = s[i] - 'A';
            a1 = q + 10;
        } else if (s[i] >= 'a' && s[i] <= 'f') {
            q = s[i] - 'a';
            a1 = q + 10;
        } else {
            q = s[i] - '0';
            a1 = q;
        }

        right = s.size() - i - 1;
        x = x + a1 * pow(n, right);
    }

    /******************************************/
    /*  将 10 进制数转换成 m 进制数(字符串)     */
    /******************************************/
    // 当 10 进制数值为 0 时, 直接输出字符串 "0"
    if (x == 0) {
        cout << "0";
        return 0;
    }

    // 使用 "除基数取余法" 将 10 进制数转换成 m 进制数(字符串)
    string y;
    while (x > 0) {
        long long v = x % m ;
        char s1;

        if (v <= 9) {
            s1 = v + '0';
        } else {
            v = v % 10;
            s1 = 'A'+ v;
        }

        y = s1 + y;
        x = x / m;
    }
    cout << y;

    return 0;
}